Alright, that should be better than a busy loop. I'm surprised that messages to an ActorRef aren't queued while it's initializing. It's also quite possible that your initialization isn't happening the way you believe and the DAGScheduler constructor is called *after* or concurrently with submitJob.