Can't reproduce results from GridSearchCV?
The score from your GridsearchCV is biased.  You can use cross-validation either for estimating accuracy, or for choosing hyperparameters; but not both.  If you use cross-validation to pick the best choice of hyperparameters, by measuring the accuracy of each possible option, the accuracy you got for the option you chose will tend to overestimate the accuracy you'll see on the test set.

To avoid this bias, select a separate hold-out validation set for estimating the accuracy of your selected parameters, or use nested cross-validation (or a scikit-learn Pipeline).

See https://datascience.stackexchange.com/a/17835/8560.