@flow
def my_flow(task_runner=DaskTaskRunner):
val1 = function1.submit().result()
val2 = function2.submit().result()
task1data = task1.submit(val1)
task2data = task2.submit(val1)
task3data = task3.submit(val1)
task4data = task4.submit(val1)
task5data = task5.submit(val1)
task6data = task6.submit(val1)
task7data = task7.submit(val1)
task8.submit(val2, task1data)
task9.submit(val2, task2data)
task10.submit(val2, task3data)
task11.submit(val2, task4data, wait_for=[task8]
task12.submit(val2, task5data, wait_for=[task9]
task13.submit(val2, task6data, waif_for=[task8, task9]
task14.submit(val2, task7data, wair_for=[task8, task10]