What can I do to make only the active app use Internet? I know there are few apps that can restrict apps from access internet, but I just want a simple app or a solution so that only the active app say WhatsApp uses the Internet and the rest apps don't access the Internet at all?

I am using MotoG3 with Marshmellow (6.0.1)
There usually is no need to install some 3rd party app to do the blocking part. These apps mostly require root access, even after granting root access to them, I found that the very app that was supposed to restrict background data usage was secretly consuming large amounts of data in the background.

Not many know this, but, android devices actually have the ability to restrict background data usage built-in.

Just go to "Settings/Data Usage" and then select the options menu (the three-dots on top right corner) and just check the box saying 'Restrict BackGround Data'. And now you're good to go.

You can monitor the data yourself, it worked pretty well for me, but, then you would have to manually open WhatsApp every minute to check if you have any new messages, this feature does not allow any exceptions!!