This scheduling, which follows the packed scheduling of executors, seems a little suboptimal in that we'd probably prefer to deposit drivers randomly rather than gather them on the first several workers. I think it would be sufficient to [Random.shuffle](http://www.scala-lang.org/api/current/index.html#scala.util.Random$)(workers).