title: Dask: Gather futures remotely
body: <p>I have a large number of futures pointing to data which I subsequently need to aggregate remotely in another task:</p>
  <pre class="lang-py prettyprint-override"><code>futures = [client.submit(get_data, i) for i in range(0, LARGE_NUMBER)]
  agg_future = client.submit(aggregate, futures)
  </code></pre>
  <p>The issue with the above is that the client complains about the size of the argument I am submitting due to the large number of futures.</p>
  <p>If I were willing to pull the data back to the client, I would simply use <code>gather</code> to collect the results:</p>
  <pre class="lang-py prettyprint-override"><code>agg_local = aggregate(client.gather(futures))
  </code></pre>
  <p>This, however, I would explicitly like to avoid. Is there a way (ideally non-blocking) to effectively <code>gather</code> the futures results within a remote task without having the client complain about the size of the list of futures being aggregated?</p>