This depends upon an individual.
According to my experience, I found IScala and Jupyter Scala less stable and less polished. Jupyter Scala always prints every variable value after I execute a cell; I don't want to see this 99% of the time.
So, I prefer Spark Kernel and it works very well for using both Scala and Spark.
If you want to know more about Spark, then do check out this awesome video tutorial: