Move try-except KeyboardInterrupt around get() setup (#1444)
Move try-except KeyboardInterrupt around get() setup (#1444)

* Move try-except KeyboardInterrupt around get() setup

Previously when calling dask.async.get_async we would only catch
KeyboardInterrupts that happened during computation, not during setup
and teardown.  This could cause an issue if a ProgressBar callback
was setup but then the KeyboardInterrupt happened either during further
setup or after computation during teardown (but before ProgressBar
teardown)

This commit expands the range of the KeyboardInterrupt try-except to
include everything after plugin registration.

Fixes #1439

* Use started_cbs in dask.async.get_async

This avoids a rare case where un-started plugins can be "finished"
before they start if another plugin fails

jakirkham/dask,mrocklin/dask,chrisbarber/dask,cpcloud/dask,cowlicks/dask,blaze/dask,gameduell/dask,dask/dask,jakirkham/dask,ContinuumIO/dask,blaze/dask,ContinuumIO/dask,jcrist/dask,jcrist/dask,mrocklin/dask,mraspaud/dask,dask/dask,mraspaud/dask