Gyarados, the perennial poster boy for hard work does pay off, Gyarados has been a staple for the highest tiers of play for several generations. And Gen VII has been kind to Gyarados, giving it a one time nuke in the rarely resisted Flynium Z Bounce on top of its Mega Evolution from its previous generation, giving Gyarados many options to keep your opponent guessing.
Dweller of Dream's Deep
Gyarados
Ability: Intimidate
Item: Gyaradosite
-Waterfall/Crunch
-Dragon Dance
-Rest
-Sleep Talk
Nature: Adamant (+ATK, -SATK) or Jolly (+SPE,-SATK)
EVs: 252 HP/252 ATK/4 SDEF OR 252 HP/120 SDEF/136 DEF
RestTalk Mega Gyarados, as Gyarados is respectably bulky after Mega Evolving. Rest gives Mega Gyarados longevity and prevents any Toxic/Burn/Paralysis from shutting it down. Dragon Dance is for boosting to truly terrifying levels of offense or to make up for the fact that its offenses are uninvested. Waterfall is the preferred STAB of choice, as it is STAB in both normal and Mega forms, allowing to make use of which form is more beneficial at the moment, though Crunch is perfectly viable as well. Mono-attacking STAB is not a problem as Mold Breaker prevents Water Absorb/Storm Drain from negating Gyarados' only offense and Mega Gyarados can Dragon Dance to the point it will roll over nearly any resist thrown its way.
Also, while Let's Go OU doesn't get much attention, Mega Gyarados is especially valuable there as one of the two best Dark types in the game (the other being Alolan Muk)
Other Options
Earthquake -Mold Breaker and Earthquake have great synergy, with Earthquake negating Levitate, allowing Gyarados to slam Rotom-Wash very hard, a rarity for Water types.
Taunt -Gyarados has a respectable speed tier and Taunt prevents phazing or counter setting up attempts.