Import the Workflow.Advanced.dll into your project. You can then incorporate a loop mechanism for your second dialog (approval dialog) where it will wait until all approvers have gone through the dialog before exiting by using the Merge (Wait) components brought into play by the Workflow.Advanced library.
There may be a better way to do this but what I use prior to the approval Dialog is a For Each Element in Collection and a Random Rule. The For Each Element in Collection is using a custom data type I have to hold the Approvers' full name and email address. The Random rule just allows a mechanism to hit the Dialog and then go back to the For Each Item component, until the For Each Item hits the last item. After the Approval Dialog, add one of the Merge (Wait) components. Link the 'Finished' path of the For Each Item component to this Wait component along with your Approve path from your Approval dialog. Setup your send email component to send to the email address of the current element from the For Each Item component. Here is an example of how this looks:
When run, it'll loop through each approver and won't proceed until all have Approved (in the example it says 'Submit' but you should get the idea).