Problem with Processing Dimensions with Multiple Facts
You need to process D1 and D5 in the same transaction. Then both will complete processing before measure groups are processed. Make sure you mark Transaction=true (the default unless you explicitly set it to false) and Parallel. 

&lt;Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"&gt;
  &lt;Parallel&gt;
    &lt;Process&gt;
      &lt;Object&gt;
        &lt;DatabaseID&gt;YourDB&lt;/DatabaseID&gt;
        &lt;DimensionID&gt;D1&lt;/DimensionID&gt;
      &lt;/Object&gt;
      &lt;Type&gt;ProcessUpdate&lt;/Type&gt;
    &lt;/Process&gt;
    &lt;Process&gt;
      &lt;Object&gt;
        &lt;DatabaseID&gt;YourDB&lt;/DatabaseID&gt;
        &lt;DimensionID&gt;D5&lt;/DimensionID&gt;
      &lt;/Object&gt;
      &lt;Type&gt;ProcessUpdate&lt;/Type&gt;
    &lt;/Process&gt;
    &lt;Process&gt;
      &lt;Object&gt;
        &lt;DatabaseID&gt;YourDB&lt;/DatabaseID&gt;
        &lt;CubeID&gt;C1&lt;/CubeID&gt;
      &lt;/Object&gt;
      &lt;Type&gt;ProcessFull&lt;/Type&gt;
    &lt;/Process&gt;
  &lt;/Parallel&gt;
&lt;/Batch&gt;


I would highly recommend you digest this article. 

Also are you processing all cubes as ProcessFull or only some cubes or some measure groups or some partitions. If you are processing all cubes and measure groups and partitions then don't bother with all this. Just do a ProcessFull on the database object. ProcessUpdate on dimensions is only for incremental processing which assumes you aren't processing all partitions.