title: Using dask delayed to create dictionary values
body: <p>I'm struggling to figure out how to get dask delayed to work on a particular workflow that involves creating a dictionary.</p>
  
  <p>The idea here is that func1, func2, func3 can run independently of each other at the same time, and I want the results of those functions to be the values in a new dictionary <code>z</code>.</p>
  
  <pre><code>from dask.delayed import delayed
  
  x1 = {'a': 1, 'b': 2, 'c': 3}
  x2 = {'a': 4, 'b': 5, 'c': 6}
  
  @delayed
  def func1(d1, d2):
      return d1['a'] + d2['a']
  
  @delayed
  def func2(d1, d2):
      return d1['b'] - d2['b']
  
  @delayed
  def func3(d1, d2):
      return d1['c'] * d2['c']
  
  z = {}
  z['val1'] = func1(x1, x2)
  z['val2'] = func2(x1, x2)
  z['val3'] = func3(x1, x2)
  </code></pre>
  
  <p>When I run the following, I get an error:</p>
  
  <pre><code>&gt;&gt;&gt; result_dict = z.compute()
  
  AttributeError: 'dict' object has no attribute 'compute'
  </code></pre>
  
  <p>When I run the following, it succeeds however the result is a tuple and not a dictionary.</p>
  
  <pre><code>&gt;&gt;&gt; result_dict = dask.compute(z)
  
  ({'val1': 5, 'val2': -3, 'val3': 18},)
  </code></pre>
  
  <p>How do I compute the results so it returns a dictionary? Am I doing this right?</p>