Constructor parameters should not be mutated during fit and that holds for `random_state` as well. Please change this line to:

    self.random_state_ = check_random_state(self.random_state)

or 

    random_state = check_random_state(self.random_state)

and then pass the `random_state` local variable explicitly as an argument to the subsequent private methods.