There are two things suggest you.
1. Update your selenium dependency to 3.4.0 or the latest one.
And
2. Instead of casting your RemoteWebDriver instance directly, you should use Augmenter as given below.
WebDriver augmentedDriver= new Augmenter().augment(driver);
File screenShot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);