This is mostly a note to myself.
The parallel scheduler should be mostly rewritten. It's a classic case of adding features as I go, and ending up with a weird complicated mess.
Notable changes that should happen:
@minrk, we're interested in improving the parallel scheduler. Is this issue already resolved in the current version?
It is not.
If this is a kind of "feature wishlist" :-) : add support for "initial tasks per engine", e.g. for running the equivalent of c[:].execute("%colors nocolor") even if the engine is added after the job is started.
@JanSchulz it isn't, really, it's specific problems that have been caused by growing the Scheduler slowly over time to the point that some things need to be started from the beginning. But you can accomplish the same thing by using startup files or exec_lines, which initialize IPython before the engine is registered with the controller.