title: @ngrx selector emitting twice in parallel
body: <p>I have a quite simple selector</p>
  
  <pre><code>export const isLoading = createSelector(
    state =&gt; state.$loading
  );
  </code></pre>
  
  <p>and two actions <code>StartLayoutNavigationAction</code> and <code>EndLayoutNavigationAction</code> that just set the <code>$loading</code> flag accordingly.
  I invoke these functions once, my actions get logged:</p>
  
  <pre><code>ACTION – [Layout] Start navigation StartLayoutNavigationAction {layout: "login", type: "[Layout] Start navigation"}
  ACTION – [Layout] End navigation EndLayoutNavigationAction {type: "[Layout] End navigation"}
  </code></pre>
  
  <p>So one would assume that the selector would emit once when the first action was invoked, and once when the second one was invoked. No actions in between.</p>
  
  <p>BUT:</p>
  
  <p>The selector seems to emit twice in parallel. I piped as following:</p>
  
  <pre><code>layoutLoading$: Observable&lt;boolean&gt; = this.store.pipe(
    select(isLoading),
    distinctUntilChanged((x, y) =&gt; {
      console.log("Comparison:", x, y);
      return x === y;
    }),
    tap(value =&gt; console.log("New val:", value))
  );
  </code></pre>
  
  <p>And this is the output:</p>
  
  <pre><code>ACTION – [Layout] Start navigation StartLayoutNavigationAction {layout: "login", type: "[Layout] Start navigation"}
  Comparison:  false true
  New val: true
  Comparison: false true
  New val: true
  ACTION – [Layout] End navigation EndLayoutNavigationAction {type: "[Layout] End navigation"}
  Comparison: true false
  New val: false
  Comparison: true false
  New val: false
  </code></pre>
  
  <p>Am I getting something wrong? Is this expected behaviour?</p>