add sugar for executing tasks in parallel

Tasks
- [ ] Needs more testing, specifically with handling cases where one or more of the tasks throws an exception