No. If I understood correctly (correct me if I'm wrong) this page describes a way to allow clients to connect to the server where Pi-Hole is running with a VPN client, but only route DNS requests through it.
This is not what I need. I don't want to use my Pi-Hole installation from everywhere. I'll just use it on my local network. No VPN server will be installed on the machine where Pi-Hole resides. But a VPN client is already running on it. Let me explain through some improvised ascii schema. What I want is that :
[My Computer] ==DNS A query (eth0)==> [Raspi] ==DNS A query (through VPN connection, tun0)==> [external DNS resolver] (let's say DNS.watch for the sake of example)
Of course the response would be the same route but the other way.
What I mean is I don't want Pi-Hole to send DNS queries "in clear" through my actual ISP connection, but route it through a VPN connection (the OpenVPN client is running on the Raspi where Pi-Hole will be installed). So the interface where the Pi-Hole receive DNS queries from computers on the local network (eth0) is different from the interface it must use to send DNS queries to the Internet (tun0).
Otherwise, it completely defeats the purpose of using a VPN to avoid ISP spying (deep packet inspection, etc.), because my ISP would know every DNS request I make if I configure it to use the eth0 interface. (for example if I do "ping -I eth0 google.com" my ISP will see that I'm sending ICMP packets to Google. But if I do "ping -I tun0 google.com" they won't see anything except encrypted data going to a VPN server somewhere. This is the route I want the DNS queries from Pi-Hole to take... but the response must be delivered on the local network, and it can only reach the local network via eth0, which is the actual hardware interface connected to my modem-router)