Interacting with asynchronous parallel tasks in IPython