I have a working chain, but when I add apply_async() it only executes the first task. 
@task(name='run_a', delay=True)
def run_a(**kwargs):
    do_whatever(kwarg['var'])
    return
@task(name='run_b', delay=True)
def run_b(**kwargs):
    # ...
    return
@task(name='run_c', delay=True)
def run_c(**kwargs):
    # ...
    return
With a chain command:
ret = chain(
    run_a.s(**kwargs),
    run_b.s(**kwargs),
    run_b.s(**kwargs)
).apply_async()
- Without the apply_asyncit all works (synchronously) as expected.
- 'kwargs' is a dict.
 
    